package clases.domain.services;

import clases.domain.Pieza;
import conexion.util.MysqlConfigUtil;
import java.util.ArrayList;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionException;
import org.apache.ibatis.session.SqlSessionFactory;

public class MantenedorPiezaService {
    //Inserta Piezas

    public boolean insertPiezas(Pieza pieza) throws Exception {
        boolean inserta = false;
        int insert=0;
        SqlSessionFactory sqlSessionFactory = MysqlConfigUtil.getSqlSessionFactory();
        SqlSession session = sqlSessionFactory.openSession();
        try {
            System.out.println("inserto");
            insert = session.insert("Pieza.insertPieza", pieza);
            session.commit();
            inserta=insert==1?true:false;
        } catch (SqlSessionException e) {
            System.out.println("inserto");
        }
        return inserta;
    }

    //Actualiza Piezas
    public boolean updatePiezas(Pieza pieza) throws Exception {
        boolean update = false;
        int updat=0;
        SqlSessionFactory sqlSessionFactory = MysqlConfigUtil.getSqlSessionFactory();
        SqlSession session = sqlSessionFactory.openSession();
        try {
            updat=session.update("Pieza.updatePieza", pieza);
            session.commit();
            System.out.println("Actualizo");
            update = updat==1?true:false;
        } catch (SqlSessionException e) {
            System.out.println("Actualizo");
        }
        return update;
    }

    //Elimina Piezas
    public boolean deletePiezas(Pieza pieza) throws Exception {
        boolean delete = false;
        int del=0;
        SqlSessionFactory sqlSessionFactory = MysqlConfigUtil.getSqlSessionFactory();
        SqlSession session = sqlSessionFactory.openSession();
        try {
           del=session.delete("Pieza.deletePieza",pieza);
            System.out.println("Elimino");
            session.commit();
            delete = del==1?true:false;;
        } catch (SqlSessionException e) {
            System.out.println("Elimino");
        }
        return delete;
    }

    //Lista Piezas
    public List<Pieza> getListPiezas(Pieza pieza) throws Exception {
        boolean delete = false;
        SqlSessionFactory sqlSessionFactory = MysqlConfigUtil.getSqlSessionFactory();
        SqlSession session = sqlSessionFactory.openSession();
        List<Pieza> listaPiezas = new ArrayList();
        try {
            listaPiezas = session.selectList("Pieza.selectAllPiezas");
            System.out.println("Trae Lista");
        } catch (SqlSessionException e) {
            System.out.println("Elimino");
        }
        return listaPiezas;
    }
    public List<Pieza> getListPiezasByVersion(int numVersion) throws Exception {
        boolean delete = false;
        SqlSessionFactory sqlSessionFactory = MysqlConfigUtil.getSqlSessionFactory();
        SqlSession session = sqlSessionFactory.openSession();
        List<Pieza> listaPiezas = new ArrayList();
        try {
            listaPiezas = session.selectList("Pieza.selectPiezaByVersion",numVersion);
            System.out.println("Trae Lista");
        } catch (SqlSessionException e) {
            System.out.println("Elimino");
        }
          finally {
            session.close();
        }
        return listaPiezas;
    }
}
